package com.example.shop.user.service;

import com.example.shop.common.api.ServiceReturn;
import com.example.shop.common.bo.Page;
import com.example.shop.pojo.User;
import com.example.shop.user.dto.GoodsCollection;

import java.util.List;

public interface GoodsCollectionService {
    /**
     * 查看该用户是否收藏该商品
     * 如果用户不存在，则直接返回未收藏
     * @param user 查看的用户
     * @param goodsId 被收藏的商品
     * @return 返回收藏状态，true为收藏
     */
    ServiceReturn<Boolean> checkCollectionState(User user, long goodsId);

    /**
     * 浏览商品收藏夹
     * @param user 被浏览收藏夹的用户
     * @param page 返回的页
     * @return 返回一页收藏夹数据
     */
    List<GoodsCollection> browseCollection(User user,Page page);

    /**
     * 取消收藏某商品
     * @param user 关联该操作的用户
     * @param goodsId 被取消收藏的商品id
     * @return 返回取消状态，true代表取消收藏成功
     */
    ServiceReturn<Boolean> cancelCollection(User user, long goodsId);

    /**
     * 收藏某商品
     * @param user 关联该操作的用户
     * @param goodsId 被收藏的商品id
     * @return 返回收藏状态，true代表收藏成功
     */
    ServiceReturn<Boolean> addCollection(User user,long goodsId);
}
